iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0

昨天我們已經成功讀取並篩選出核心欄位(縣市、AQI、PM2.5、時間),今天要進一步做縣市之間的比較,看看哪個縣市的AQI整體表現最好,哪個縣市需要特別注意。

AQI是依據多種污染物(PM2.5、PM10、臭氧、二氧化氮、一氧化碳、二氧化硫)計算而成的一個整合性數值。一般來說,數值越高代表空氣品質越差,對人體健康的影響也越大。因此,若能比較各縣市的平均 AQI,就能初步了解台灣不同區域的空氣品質狀況。

分析思路

  1. 依縣市分組:利用groupby,將所有監測站的數據依county進行分組。
  2. 計算平均值:對每個縣市計算AQI的平均數值。
  3. 排序與繪圖:依平均值大小排序,並用長條圖呈現。
    這樣的圖表能快速看出縣市間的差異,例如中南部因工業與交通因素,平均 AQI 可能會偏高,而東部或外島可能相對較低。

程式實作
以下使用pandas與matplotlib繪製縣市AQI排行:

import pandas as pd
import matplotlib.pyplot as plt

# 設定中文字型(macOS 可以用 Heiti TC)
plt.rcParams["font.family"] = "Heiti TC"
plt.rcParams["axes.unicode_minus"] = False

# 讀取資料(延續前一天處理後的檔案)
df = pd.read_csv("IT_AQI/AQI.csv")

# 篩選所需欄位
df = df[["county", "aqi"]]

# 確保 AQI 欄位為數值型態
df["aqi"] = pd.to_numeric(df["aqi"], errors="coerce")

# 計算各縣市的平均 AQI
county_aqi = df.groupby("county")["aqi"].mean().sort_values(ascending=False)

# 繪製長條圖
plt.figure(figsize=(12, 6))
county_aqi.plot(kind="bar", color="skyblue", edgecolor="black")

plt.title("各縣市平均 AQI 排行", fontsize=16)
plt.ylabel("平均 AQI")
plt.xlabel("縣市")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

https://ithelp.ithome.com.tw/upload/images/20250907/20178624h3hLOr11TI.png
執行後,我們會得到一張「各縣市平均AQI排行長條圖」。
https://ithelp.ithome.com.tw/upload/images/20250907/20178624ZhIygEvzqq.png
假設結果如下:
最高AQI:出現在中南部工業區(如雲林、嘉義、彰化),平均值超過50。
最低AQI:出現在東部與外島(如花蓮、台東、連江),平均值大約落在30以下。
雙北地區:由於交通繁忙,平均AQI屬於中等偏高,但仍低於部分工業縣市。
這樣的比較能讓我們有一個直觀的理解:空氣污染不只是都市問題,而是和地區特性(工業、交通、地理環境)密切相關。

不過要注意:
不同縣市的測站數量不同,可能導致平均值偏差。
AQI是綜合指標,某縣市平均AQI偏低,但仍可能有PM2.5偶爾爆表的情況。
資料若只取單一時間區間,結果可能會受天氣與季節影響(例如冬季容易出現境外污染)。
因此,縣市AQI排名雖然好看,但應該搭配時間序列與單一污染物的分析,才能更全面理解環境狀況。


上一篇
Day 22 讀取資料 & 篩選欄位
系列文
Python × 政府開放資料:30天數據探索與圖表呈現23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言